package com.sea.physical.service;


import com.sea.physical.entity.CreateDistributeSku;
import com.sea.physical.entity.CreateSku;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.List;

/**
 * 分配发运计划明细
 * @author 陈鸿飞
 */
public interface CreateDistributeSkuService {

    /**
     * 新增分配明细
     * @param createDistributeSku
     * @return
     */
    int save(CreateDistributeSku createDistributeSku);
    /**
     * 根据创建ID获取明细
     * @param createId
     * @return
     */
    List<CreateDistributeSku> findByCreateId(Integer createId);
    /**
     * 导入发运SKU
     * @param inputStream
     * @param fileName
     * @param createId
     * @throws Exception
     */
    void importSku(InputStream inputStream, String fileName, Integer createId) throws Exception;
    /**
     * 导入发运SKU
     * @param inputStream
     * @param fileName
     * @param createId
     * @throws Exception
     */
    void importAutoSku(InputStream inputStream, String fileName, Integer createId) throws Exception;


    /**
     * 根据计划ID删除明细
     * @param createId
     * @return
     */
    Integer deleteByCreateId(Integer createId);
    /**
     * 根据月份查询查询发运信息
     * @param month
     * @return
     */
    CreateSku findByMonthChannelSku(String month, String channelName, String createSku);

    /**
     * 导出数据
     */
    List<CreateDistributeSku> getRows(Integer[] ids);

    CreateDistributeSku findByDetail(Integer createId,
                                     Integer createSkuId,
                                     Integer createProduceId,
                                     Integer createNumber);

    Integer usave(CreateDistributeSku createDistributeSku);

    List<CreateDistributeSku> findByCreateIdSupplier(Integer createId,
                                                     String createSupplierName);

    /**
     *
     * @param createDistributeSku
     * @return
     */
    Integer updateQualityStatus(CreateDistributeSku createDistributeSku);
    /**
     * 查询质检数量
     * @param id
     * @return
     */
    Integer findQualityNumber(Integer id);
    /**
     * 更新占有柜号
     * @return
     */
    Integer updateCreatePlanNo();

    void autoDistribute(Integer createId);

    List<CreateDistributeSku> findTotalNumberByCreateId(Integer createId);

    CreateDistributeSku findDetailById(Integer id);

    List<CreateDistributeSku> findDistributeSkuBySupplierName(Integer createId);

    List<CreateDistributeSku> findByCreateIdSupplierName(Integer createId,String createSupplierName);
}
